package com.eoner.managerlibrary.user;

import com.eoner.baselibrary.bean.personal.CustomerOrderInfo;
import com.eoner.commonbean.user.CustomerBean;
import com.eoner.managerlibrary.user.annotation.UpdateAllUserCache;
import com.eoner.managerlibrary.user.cache.UserDataCache;
import com.eoner.managerlibrary.user.callback.UserDataCallBack;

public interface IUserDataManager {

    /////////////////////////////////////////////////////////////////////////////////
    //
    //                     登录状态操作
    //
    /////////////////////////////////////////////////////////////////////////////////

    //是否系统登录
    boolean isSystemLogin();
    //自动登录系统
    void autoSystemLogin();

    /////////////////////////////////////////////////////////////////////////////////
    //
    //                    请求相关
    //
    /////////////////////////////////////////////////////////////////////////////////

    //请求用户信息
    void requestCustomerInfo(UserDataCallBack callBack);
    void requestCustomerInfoForceUpdate(final UserDataCallBack callBack);

    //请求用户我的订单信息
    void requestCustomerOrderIndex(UserDataCallBack callBack);

    /////////////////////////////////////////////////////////////////////////////////
    //
    //                   用户信息获取相关
    //
    /////////////////////////////////////////////////////////////////////////////////

    //用户所有缓存信息（一般不要使用）
    UserDataCache getUserCacheData();
    //获取用户状态
    boolean isUserDisable();
    //获取用户id
    String getCustomerId();
    //获取用户token
    String getCustomerToken();
    //获取用户头像
    String getHeadImgUrl();
    //获取用户昵称
    String getNickName();
    //获取用户昵称
    String getLevel_bg();
    //获取用户手机号
    String getMobile();
    //获取身份证号
    String getIdCardNo();
    //获取身份证上真实姓名
    String getIdCardRealName();
    //获取身份提示信息
    String getIdCardMessage();
    //是否是代理商
    boolean isAgent();
    //用户等级
    String getRoleLevel();
    //邀请码
    String getInviteCode();
    //是否实名认证
    String getCheckIdCardStatus();
    //
    boolean getCheckRefundAddress();

    /////////////////////////////////////////////////////////////////////////////////
    //
    //                   用户信息修改相关
    //
    /////////////////////////////////////////////////////////////////////////////////


    //更新用户信息
    @UpdateAllUserCache
    void updateUserInfo(CustomerBean.DataBean dataBean);

    //更新用户信息
    @UpdateAllUserCache
    void updateUserInfo(CustomerOrderInfo.DataBean dataBean);

    /**
     * 更新用户状态
     * */
    void updateUserStatus(boolean isDisable);
    void updateUserStatus(String isDisable);

    /**
    * 更新用户手机号
    * */
    void updateUserMobile(String mobile);

    /**
     * 更新用户身份证真实姓名
     * */
    void updateUserIdCardRealName(String realName);

    /**
     * 更新用户身份证号
     * */
    void updateUserIdCardNumber(String idCardNumber);

    /**
     * 更新用户是否是代理商
     * */
    void updateUserIsAgent(boolean isAgent);

    /**
     * 更新用户等级
     * */
    void updateUserLevel(String userLevel);

    /**
     * 更新邀请码
     * */
    void updateInviteCode(String inviteCode);

    /**
     * 更新售货地址是否填写
     * */
    void updateCheckRefundAddress(boolean checkRefundAddress);

    //清除登录信息
    void clearLoginInfo();





}
